package run;

import java.io.File;
import java.util.List;

import model.Batoh;
import alg.BatohAlg;
import io.Input;
import io.Output;
import alg.HrubaSila;
import statistics.Statistiky;

public class Run {

	public static void main(String[] args) {

		if (args.length != 2) {
			System.out.println("Zly vstup, ocakavane su 2 parametre");
			System.out.println("1.parameter algoritmus (-Hruba ,-MaxPomer)");
			System.err.println("2.parameter vstupny subor");
			System.exit(2);
		}

		String algoritmus = args[0];
		String vstupnySubor = args[1];

		BatohAlg alg;
		String riesenie = "";
		Input vstupneData = new Input(vstupnySubor);
		List<Batoh> zoznamInstancii = vstupneData.nacitajVstupnySuborSInstanciou();

		if ((new String("-Hruba")).equalsIgnoreCase(algoritmus)) {

			System.out.println("Riesenie Hrubou silou");

			alg = new HrubaSila(zoznamInstancii);
			 long start = System.nanoTime();
			riesenie = alg.vyriesBatoh();
			 long end = System.nanoTime();
			
		 System.out.println("Cas na vyriesenie batohu pomocou Hrubej sily je " +((double)(end- start)/1000000.0));
			 Output zapisSuboru = new Output("temp.txt", riesenie);
			 zapisSuboru.zapisSubor();
			 Statistiky statistiky = new Statistiky("sol"+File.separator+"knap_4.sol.dat", "temp.txt");
			 statistiky.zistiStatistiky();
		}

		/*
		 * else if((new String("-MaxPomer")).equalsIgnoreCase(algoritmus)) {
		 * System.out.println("Riesenie pridanim max veci"); alg = new
		 * HeuristikaPomer(zoznamInstancii); riesenie = alg.vyriesBatoh();
		 * 
		 * Output zapisSuboru = new Output("temp.txt", riesenie);
		 * zapisSuboru.zapisSubor(); Statistiky statistiky = new
		 * Statistiky("sol"
		 * +File.separator+vstupnySubor.substring(4,vstupnySubor.length()),
		 * "temp.txt"); statistiky.zistiStatistiky();
		 * 
		 * }
		 */
	}
}
